package com.xuzao.developer.base.criteria;

import java.util.ArrayList;
import java.util.List;


/**
 * @description 
 * @author xuzao
 * @date 2019-09-19 09:38:12
 **/
public class SysResourceCriteria {

	protected String orderByClause;

	protected boolean distinct;

	protected List<Criteria> oredCriteria;

	private int limitStart = -1;

	private int limitEnd = -1;

	public SysResourceCriteria() {
	oredCriteria = new ArrayList<Criteria>();
	}

	public void setOrderByClause(String orderByClause) {
		this.orderByClause = orderByClause;
	}
	public String getOrderByClause() {
		return orderByClause;
	}

	public void setDistinct ( boolean distinct){
		this.distinct = distinct;
 	}
	public boolean isDistinct () {
		return distinct;
	}

	public List<Criteria> getOredCriteria () {
		return oredCriteria;
	}

	public void or (Criteria criteria){
		oredCriteria.add(criteria);
	}

	public Criteria or () {
		Criteria criteria = createCriteriaInternal();
		oredCriteria.add(criteria);
		return criteria;
	}

	public Criteria createCriteria () {
		Criteria criteria = createCriteriaInternal();
		if (oredCriteria.size() == 0) {
		oredCriteria.add(criteria);
	}
		return criteria;
	}

	protected Criteria createCriteriaInternal () {
		Criteria criteria = new Criteria();
		return criteria;
	}
	public void clear () {
		oredCriteria.clear();
		orderByClause = null;
		distinct = false;
	}

	public void setLimitStart ( int limitStart){
		this.limitStart = limitStart;
	}

	public int getLimitStart () {
		return limitStart;
	}

	public void setLimitEnd (int limitEnd){
		this.limitEnd = limitEnd;
	}

	public int getLimitEnd () {
		return limitEnd;
	}

	protected abstract static class GeneratedCriteria {
		protected List<Criterion> criteria;
		protected GeneratedCriteria() {
		super();
		criteria = new ArrayList<Criterion>();
	}

	public boolean isValid() {
		return criteria.size() > 0;
	}

	public List<Criterion> getAllCriteria() {
		return criteria;
	}

	public List<Criterion> getCriteria() {
		return criteria;
	}
	protected void addCriterion(String condition) {
		if (condition == null) {
			throw new RuntimeException("Value for condition cannot be null");
	}
		criteria.add(new Criterion(condition));
	}
	protected void addCriterion (String condition, Object value, String property){
		if (value == null) {
			throw new RuntimeException("Value for " + property + " cannot be null");
	}
		criteria.add(new Criterion(condition, value));
	}

	protected void addCriterion (String condition, Object value1, Object value2, String property){
		if (value1 == null || value2 == null) {
			throw new RuntimeException("Between values for " + property + " cannot be null");
	}

		criteria.add(new Criterion(condition, value1, value2));
	}

	public Criteria andIdIsNull () {
		addCriterion("id is null");
		return (Criteria) this;
	}

	public Criteria andIdIsNotNull () {
		addCriterion("id is not null");
		return (Criteria) this;
	}

	public Criteria andIdEqualTo (java.lang.Long value){
		addCriterion("id =", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdNotEqualTo (java.lang.Long value){
		addCriterion("id <>", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdGreaterThan (java.lang.Long value){
		addCriterion("id >", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdGreaterThanOrEqualTo (java.lang.Long value){
		addCriterion("id >=", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdLessThan (java.lang.Long value){
		addCriterion("id <", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdLessThanOrEqualTo (java.lang.Long value){
		addCriterion("id <=", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdIn (List < java.lang.Long > values) {

		addCriterion("id in", values, "id");
		return (Criteria) this;
	}

	public Criteria andIdNotIn (List < java.lang.Long > values) {
		addCriterion("id not in", values, "id");
		return (Criteria) this;
	}

	public Criteria andIdBetween (java.lang.Long value1, java.lang.Long value2){
		addCriterion("id between", value1, value2, "id");
		return (Criteria) this;
	}

	public Criteria andIdNotBetween (java.lang.Long value1, java.lang.Long value2){
		addCriterion("id not between", value1, value2, "id");
		return (Criteria) this;
	}

	public Criteria andNameIsNull () {
		addCriterion("name is null");
		return (Criteria) this;
	}

	public Criteria andNameIsNotNull () {
		addCriterion("name is not null");
		return (Criteria) this;
	}

	public Criteria andNameEqualTo (java.lang.String value){
		addCriterion("name =", value, "name");
		return (Criteria) this;
	}

	public Criteria andNameNotEqualTo (java.lang.String value){
		addCriterion("name <>", value, "name");
		return (Criteria) this;
	}

	public Criteria andNameGreaterThan (java.lang.String value){
		addCriterion("name >", value, "name");
		return (Criteria) this;
	}

	public Criteria andNameGreaterThanOrEqualTo (java.lang.String value){
		addCriterion("name >=", value, "name");
		return (Criteria) this;
	}

	public Criteria andNameLessThan (java.lang.String value){
		addCriterion("name <", value, "name");
		return (Criteria) this;
	}

	public Criteria andNameLessThanOrEqualTo (java.lang.String value){
		addCriterion("name <=", value, "name");
		return (Criteria) this;
	}

	public Criteria andNameIn (List < java.lang.String > values) {

		addCriterion("name in", values, "name");
		return (Criteria) this;
	}

	public Criteria andNameNotIn (List < java.lang.String > values) {
		addCriterion("id not in", values, "name");
		return (Criteria) this;
	}

	public Criteria andNameBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("name between", value1, value2, "name");
		return (Criteria) this;
	}

	public Criteria andNameNotBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("name not between", value1, value2, "name");
		return (Criteria) this;
	}

	public Criteria andNameLike(java.lang.String value) {
		addCriterion("name like", value, "name");
		return (Criteria) this;
	}

	public Criteria andNameNotLike(java.lang.String value) {
		addCriterion("name not like", value, "name");
		return (Criteria) this;
	}
	public Criteria andUrlIsNull () {
		addCriterion("url is null");
		return (Criteria) this;
	}

	public Criteria andUrlIsNotNull () {
		addCriterion("url is not null");
		return (Criteria) this;
	}

	public Criteria andUrlEqualTo (java.lang.String value){
		addCriterion("url =", value, "url");
		return (Criteria) this;
	}

	public Criteria andUrlNotEqualTo (java.lang.String value){
		addCriterion("url <>", value, "url");
		return (Criteria) this;
	}

	public Criteria andUrlGreaterThan (java.lang.String value){
		addCriterion("url >", value, "url");
		return (Criteria) this;
	}

	public Criteria andUrlGreaterThanOrEqualTo (java.lang.String value){
		addCriterion("url >=", value, "url");
		return (Criteria) this;
	}

	public Criteria andUrlLessThan (java.lang.String value){
		addCriterion("url <", value, "url");
		return (Criteria) this;
	}

	public Criteria andUrlLessThanOrEqualTo (java.lang.String value){
		addCriterion("url <=", value, "url");
		return (Criteria) this;
	}

	public Criteria andUrlIn (List < java.lang.String > values) {

		addCriterion("url in", values, "url");
		return (Criteria) this;
	}

	public Criteria andUrlNotIn (List < java.lang.String > values) {
		addCriterion("id not in", values, "url");
		return (Criteria) this;
	}

	public Criteria andUrlBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("url between", value1, value2, "url");
		return (Criteria) this;
	}

	public Criteria andUrlNotBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("url not between", value1, value2, "url");
		return (Criteria) this;
	}

	public Criteria andUrlLike(java.lang.String value) {
		addCriterion("url like", value, "url");
		return (Criteria) this;
	}

	public Criteria andUrlNotLike(java.lang.String value) {
		addCriterion("url not like", value, "url");
		return (Criteria) this;
	}

	}

	public static class Criteria extends GeneratedCriteria {

	protected Criteria() {
		super();
		}
	}
	public static class Criterion {
	private String condition;
	private Object value;
	private Object secondValue;
	private boolean noValue;
	private boolean singleValue;
	private boolean betweenValue;
	private boolean listValue;
	private String typeHandler;
	public String getCondition() {

		return condition;
	}

	public Object getValue() {
		return value;
	}

	public Object getSecondValue() {
		return secondValue;
	}

	public boolean isNoValue() {
		return noValue;
	}

	public boolean isSingleValue() {
		return singleValue;
	}

	public boolean isBetweenValue() {
		return betweenValue;
	}

	public boolean isListValue() {
		return listValue;
	}

	public String getTypeHandler() {
		return typeHandler;
	}

	protected Criterion(String condition) {
		super();
		this.condition = condition;
		this.typeHandler = null;
		this.noValue = true;
	}

	protected Criterion(String condition, Object value, String typeHandler) {
		super();
		this.condition = condition;
		this.value = value;
		this.typeHandler = typeHandler;
		if(value instanceof List<?>) {
			this.listValue = true;
		} else {
			this.singleValue = true;
		}
	}

	protected Criterion(String condition, Object value) {
		this(condition, value, null);
	}

	protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
		super();
		this.condition = condition;
		this.value = value;
		this.secondValue = secondValue;
		this.typeHandler = typeHandler;
		this.betweenValue = true;
	}

	protected Criterion(String condition, Object value, Object secondValue) {
		this(condition, value, secondValue, null);
			}
		}
	}
